ABR streaming is a technique used in streaming multimedia over communication networks, e.g. Internet. Some video streaming technologies may utilize streaming protocols such as Real Time Protocol (RTP) with Real Time Streaming Protocol (RTSP), ABR streaming technologies are almost exclusively based on Hyper Text Transport Protocol (HTTP) and designed to work efficiently over large networks that support HTTP, such as the Internet.
ABR streaming may work by detecting a user's bandwidth and CPU capacity in real time and adjusting the quality of a video stream accordingly. The ABR streaming may require the use of an encoder which can encode a single source video at multiple bit rates to generate different bit rate streams. Each of the different bit rate streams may be segmented into small multi-second parts. The client (e.g., the streaming client or the player client) is made aware of the available streams at differing bit rates, as well as segments of the streams by a manifest file. The client may switch between streaming the different encodings depending on available resources. In general, this may result in very little buffering, fast start time and a good experience for both high-end and low-end connections as well as connections whose quality varies over time.